package openbang.account.service.intf;

import java.util.List;

import openbang.account.service.entity.UserAccount;
import openbang.account.service.vo.UserLoginInfo;
import openbang.common.vo.SelectModel;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("accountService")
public interface AccountServiceAsync {
    void getAll(AsyncCallback<List<UserAccount>> callback);

	void checkForLogin(String email, String pwd, AsyncCallback<Integer> callback);

	void registerAccount(UserAccount account, AsyncCallback<Integer> callback);

	void findEmail(String email, AsyncCallback<Integer> callback);

	void getLoginUserInfo(String url,AsyncCallback<UserLoginInfo> callback);

	void applyFindPwd(String email, AsyncCallback<Integer> callback);

	void findEmail4FindPwd(String email, AsyncCallback<Integer> callback);

	void setupNewPwd(Long applyId, String newPwd,
			AsyncCallback<Integer> callback);

	void getUserAccount(AsyncCallback<UserAccount> callback);

	void updateUserAccount(UserAccount account, AsyncCallback<Integer> callback);

	void getAllEmail(AsyncCallback<List<SelectModel>> callback);

	void getAllSessionUser(AsyncCallback<List<UserLoginInfo>> callback);
}
